﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using ReservasServices.Dominio;
using System.Collections;

namespace ReservasServices
{

    [ServiceContract]
    public interface IReserva
    {

        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "Reservas", ResponseFormat = WebMessageFormat.Json)]
        string CrearReserva(Reserva reservasACrear);


        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "Reservas/{cancha}/{cliente}", ResponseFormat = WebMessageFormat.Json)]
        List<Reserva> ObtenerReservaFiltro(string cancha, string cliente);

        [OperationContract]
        [WebInvoke(Method = "PUT", UriTemplate = "Reservas", ResponseFormat = WebMessageFormat.Json)]
        Reserva ModificarReserva(Reserva reservaAModificar);

        [OperationContract]
        [WebInvoke(Method = "PUT", UriTemplate = "ReservasPendientes", ResponseFormat = WebMessageFormat.Json)]
        Reserva EncolarReserva(Reserva reservaAModificar);

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "Reservas", ResponseFormat = WebMessageFormat.Json)]
        List<Reserva> ListarReserva();

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "Reservadas", ResponseFormat = WebMessageFormat.Json)]
        List<Reserva> ListarReservadas();

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "ReservasPendientes", ResponseFormat = WebMessageFormat.Json)]
        List<Reserva> ListarReservaxConfirmar();

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "Reservas/{id}", ResponseFormat = WebMessageFormat.Json)]
        Reserva ObtenerReserva(string id);

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "DiaHora/{dia}/{hora}", ResponseFormat = WebMessageFormat.Json)]
        DiaHora ObtenerDiaHora(string dia, string hora);

    }

}
